Lenguaje en el que, en lugar de escribir una serie de instrucciones secuenciales, un programador define las acciones que el programa debe llevar a cabo cuando ocurre un determinado suceso.